home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wonky Flux Batch 2019 02
/
Wonky_Flux_Batch_2019-02.zip
/
Wonky Flux Batch 2019-02
/
021 - HO Utilities - Clock Utility System.dsk
/
TIME.DATE.DISPL.bas
< prev
next >
Wrap
BASIC Source File
|
2019-02-16
|
3KB
|
75 lines
10 REM DATE & TIME DISPLAY
20 REM FOR TIMEMASTER II H.O.
30 REM COPYRIGHT (C) 1983 APPLIED ENGINEERING
40 REM WRITTEN BY BOB SANDER-CEDERLOF
50 REM ----------------------
60 TEXT : HOME
70 GOSUB 1000: IF SLOT = 0 THEN PRINT "NO TIMEMASTER II H.O. FOUND": END
80 PRINT "YOUR ";: INVERSE : PRINT " TIMEMASTER II H.O. ";: NORMAL : PRINT " IS IN SLOT "SLOT: PRINT
90 GOSUB 1600: REM EXPLAIN MODE ON SCREEN
100 GOSUB 3000: REM LOAD DATA INTO ARRAYS
110 BL$ = " "
120 GOSUB 600: REM READ CLOCK
130 GOSUB 800: REM DISPLAY CLOCK
140 IF PEEK( -16384) <128 THEN 120:
150 POKE -16368,0
160 VTAB 23: END
599 REM --------------------
600 REM READ THE CLOCK
610 INVERSE : VTAB 22: HTAB 4: PRINT " PRESS ANY KEY TO END PROGRAM ": NORMAL
620 D$ = CHR$(4)
630 PRINT D$"PR#"SLOT: PRINT D$"IN#"SLOT
640 INPUT ":";A$: REM IN S-C MODE SELECTS TIMEMASTER FORMAT
645 REM PRINTED CHAR IGNORED BY OTHER MODES
650 PRINT D$"PR#0": PRINT D$"IN#0"
660 RETURN
799 REM -----------------------
800 REM DISPLAY CLOCK NICELY
805 ND = VAL( MID$ (A$,FMT(AP,3),2)): IF ND = OD THEN 900: REM SKIP UPDATING FIRST TWO LINES
810 IF AP < >2 THEN W = VAL( MID$ (A$,FMT(AP,1),1)):W$ = WK$(W): GOTO 840
820 W$ = LEFT$(A$,2): FOR I = 0 TO 6: IF W$ = LEFT$(WK$(I),2) THEN W$ = WK$(I):I = 6
830 NEXT
840 VTAB 9: PRINT LEFT$(BL$,20 -( LEN(W$) +3)/2);W$"DAY "
850 M = VAL( MID$ (A$,FMT(AP,2),2)):M$ = MO$(M)
860 OD = ND
870 Y = VAL( MID$ (A$,FMT(AP,4),2)) +1900
880 DT$ = M$ +" " + STR$(OD) +", " + STR$(Y)
890 VTAB 11: PRINT LEFT$(BL$,20 - LEN(DT$)/2);DT$
900 H = VAL( MID$ (A$,FMT(AP,5),2))
910 T$ = MID$ (A$,FMT(AP,6),6): REM ":MI:SS"
920 IF AP = 2 THEN AP$ = MID$ (A$,21,3): GOTO 960
930 AP$ = " AM": IF H >11 THEN AP$ = " PM"
940 IF H = 0 THEN H = 12: GOTO 960
950 IF H >12 THEN H = H -12
960 T$ = STR$(H) +T$ +AP$
970 VTAB 13: PRINT LEFT$(BL$,20 - LEN(T$)/2);T$
980 RETURN
999 REM -------------------
1000 REM TIMEMASTER II FINDER
1010 SLOT = 0: FOR I = 1 TO 7:ADDR = 12 *4096 +I *256: REM $CS00
1020 IF PEEK(ADDR) = 8 AND PEEK(ADDR +1) = 120 AND PEEK(ADDR +254) = 178 THEN SLOT = I:I = 7
1030 NEXT : IF SLOT = 0 THEN RETURN
1040 AP = PEEK(ADDR +255):VER = PEEK(ADDR +250): IF VER = 255 THEN VER = 0
1050 PA = 12 *4096 +128 +SLOT *16: REM $C080+SLOT*16
1060 CA = PA +1:PB = PA +2
1070 VER = INT(VER/16) +(VER -16 * INT(VER/16))/10:VER$ = STR$(VER)
1080 RETURN
1090 REM -------------------
1600 REM EXPLAIN MODE ON SCREEN
1610 IF AP = 1 THEN Q$ = "APPLECLOCK MODE (SW 2 ON)": IF VER >0 THEN Q$ = Q$ +" VER " +VER$
1620 IF AP = 3 THEN Q$ = "TIMEMASTER II MODE (SW 2 OFF)": IF VER >0 THEN Q$ = Q$ +" VER " +VER$
1630 PRINT Q$: RETURN
1640 REM -------------------
2000 DATA SUN,MON,TUES,WEDNES,THURS,FRI,SATUR
2010 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
2020 DATA 1,3,6,9,12,14: REM W MO/DD/YY HH:MI:SS
2030 DATA 16,1,4,17,7,9: REM MO/DD HH:MI:SS.WYY
2040 DATA 1,4,7,10,13,15: REM WW MO/DD/YY HH:MI:SS AM
2050 DATA 1,3,6,9,12,14: REM W MO/DD/YY HH:MI:SS
3000 REM LOAD DATA INTO ARRAYS
3010 DIM WK$(6),MO$(12),FMT(3,6)
3020 FOR I = 0 TO 6: READ WK$(I): NEXT
3030 FOR I = 1 TO 12: READ MO$(I): NEXT
3040 FOR I = 0 TO 3: FOR J = 1 TO 6: READ FMT(I,J): NEXT : NEXT
3050 RETURN
60000 PR# 1: PRINT CHR$(9)"80N":E$ = CHR$(27): PRINT E$"B"E$"E"E$"L010": LIST : PR# 0: CALL 1002: END